﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using DataAccessComponents;
using System.Collections.ObjectModel;
using System.ComponentModel;

namespace BusinessLogicLayer
{
    public class UprawnienieBL : IBusinessLogicLayer<Uprawnienie>
    {
        private DbOperations dal = new DbOperations();

        /// <summary>
        /// Funkcja dodawająca uprawnienie do bazy danych
        /// </summary>
        /// <param name="objDodaj">Obiekt Uprawnienie</param>
        /// <returns></returns>
        public int dodaj(Uprawnienie objDodaj)
        {
            return dal.dodajUprawnienie(objDodaj);
        }

        /// <summary>
        /// Funkcja usuwająca uprawnienie z bazy danych
        /// </summary>
        /// <param name="idusun">Id uprawnienie do usunięcia</param>
        public void usun(int idusun)
        {
            dal.usunUprawnienie(idusun);
        }

        /// <summary>
        /// Funkcja akutualizująca uprawnienie w bazie danych
        /// </summary>
        /// <param name="objDodaj">Obiekt uprawnienie zawierający inforamacje do aktualizacji</param>
        public void aktualizuj(Uprawnienie objAktualizuj)
        {
            dal.aktualizujUprawnienie(objAktualizuj);
        }

        /// <summary>
        /// Pobiera uprawnienie na podstawie id uprawnienie
        /// </summary>
        /// <param name="idpobierz">Id uprawnienie</param>
        /// <returns>Obiekt Uprawnienie</returns>
        public Uprawnienie pobierz(int idpobierz)
        {
            return dal.pobierzUprawnienie(idpobierz);
        }

        public ObservableCollection<Uprawnienie> pobierzListe()
        {
            ObservableCollection<Uprawnienie> upr = dal.pobierzListeUprawnienie();
            //ObservableCollection<string> listaString = new ObservableCollection<string>();
            //foreach (Uprawnienie u in upr)
            //{
            //    listaString.Add(u.Nazwa);
            //}
            return upr;
        }





        public bool aktualizujListe(ObservableCollection<Uprawnienie> lista)
        {
            throw new NotImplementedException();
        }

        public bool usun(ObservableCollection<Uprawnienie> lista)
        {
            throw new NotImplementedException();
        }
    }
}
